-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Optimize] Improve performance like/not like filter through pushdown function to storage engine #10355
Conversation
@mrhhsg Hi, can you help check the changes as below, involved from your commits recently, which will lead to the function pushdown not work in this PR in vectorized mode. BTW, the pushdown function of like / not like can get 2x performance gain in vectorized execution engine.
|
@compasses I am not sure, this logic should be just the same as the previous. |
Ok, before the like predicate goes to the @Gabriel39 Hi could you help review this PR, and hope it can be merged ASAP. Cause I concern it will lead to conflict to other PR, and I need keep merging to fix them :). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
PR approved by anyone and no changes requested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…function to storage engine (apache#10355) * support like/not like conjuncts push down to storage engine * vectorized engine support like/not like conjuncts push down to storage engine * support both evaluate and evaluate_vec method in like predicate * reuse remove_pushed_conjuncts and prevent logic error during move function conjuncts * change #ifndef to pragma once as per comments * change enable_function_pushdown default to false Co-authored-by: heguangnan <heguangnan@bytedance.com>
…function to storage engine (apache#10355) * support like/not like conjuncts push down to storage engine * vectorized engine support like/not like conjuncts push down to storage engine * support both evaluate and evaluate_vec method in like predicate * reuse remove_pushed_conjuncts and prevent logic error during move function conjuncts * change #ifndef to pragma once as per comments * change enable_function_pushdown default to false Co-authored-by: heguangnan <heguangnan@bytedance.com>
…function to storage engine (apache#10355) * support like/not like conjuncts push down to storage engine * vectorized engine support like/not like conjuncts push down to storage engine * support both evaluate and evaluate_vec method in like predicate * reuse remove_pushed_conjuncts and prevent logic error during move function conjuncts * change #ifndef to pragma once as per comments * change enable_function_pushdown default to false Co-authored-by: heguangnan <heguangnan@bytedance.com>
function pushdown: apache#10355 NGram BloomFilter Index apply like pushdown: apache#11579 Enabled by default, make sure it stays active. If NGram BloomFilter Index is not used, this like pushdown can be replaced by apache#15917, which can push down all expressions including like.
function pushdown: apache#10355 NGram BloomFilter Index apply like pushdown: apache#11579 Enabled by default, make sure it stays active. If NGram BloomFilter Index is not used, this like pushdown can be replaced by apache#15917, which can push down all expressions including like.
Proposed changes
Issue Number: close #xxx
Problem Summary:
Describe the overview of changes.
In order to improve to improve the performance of like/not like string matching, this PR would pushdown the function to storage engine. Test shows it can get 2x-3x performance gain.
Checklist(Required)
Further comments
If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...